首页>代码>java项目常用开发工具类>/新建文件夹 (4)/BonusUtils.java
/**
 *
 * Copyright (c) 2013, YongLe. All rights reserved.
 * Created on Jan 10, 2013 3:49:14 PM
 * 
 *
 *
 * @author	"JakeLiu"
 * @version	V1.0.0
 *
 *
 *
 * Modification History:
 * Date				Author			Version		Description
 * ---------------------------------------------------------------------
 * Jan 10, 2013		"JakeLiu"		1.0.0		
 */
package com.ylpw.utils;

import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

/**
 *
 * 积分计算工具类
 *
 * @author "JakeLiu"
 * @version Jan 10, 2013 3:49:14 PM
 * @see BonusUtils
 * @since 1.0.0
 */
public class BonusUtils {
	
	/**
	 * 积分默认倍数
	 */
	private static final double DEFAULT_BONUS_SCALE = 1d;
	
	/**
	 * 积分配置是否可用
	 * @author JakeLiu
	 * @date Mar 12, 2013 2:01:10 PM
	 * @return
	 */
	public static boolean isEnableConfigBonus() {
		String bonusScaleValue = Constants.propertiesUtilsCore.jsp_getValue("bonusScale");
		String bonusBeginDate = Constants.propertiesUtilsCore.jsp_getValue("bonusBeginDate");
		String bonusFinishDate = Constants.propertiesUtilsCore.jsp_getValue("bonusFinishDate");
		
		
		if (StringUtils.isBlank(bonusScaleValue) || !NumberUtils.isNumber(bonusScaleValue.trim())) {
			return false;
		}
		
		Date rightNow = new Date();
		Date beginDate = null;
		Date finishDate = null;
		
		if (StringUtils.isNotBlank(bonusBeginDate)) {
			beginDate = DateUtils.parseDate(bonusBeginDate, DateUtils.YEAR_MONTH_DATE_HOUR_MINUTE);
		}
		
		if (StringUtils.isNotBlank(bonusFinishDate)) {
			finishDate = DateUtils.parseDate(bonusFinishDate, DateUtils.YEAR_MONTH_DATE_HOUR_MINUTE);
		}
		
		if (beginDate != null && beginDate.after(rightNow)) {
			return false;
		} else if (finishDate != null && finishDate.before(rightNow)) {
			return false;
		}
		
		return true;
	}
	
	/**
	 * 取积分倍数,使用此方法前先调用isEnableConfigBonus进行较验
	 * @author JakeLiu
	 * @date Mar 12, 2013 3:13:30 PM
	 * @param isChecked
	 * @return
	 */
	public static Double findScale() {
		return Double.parseDouble(Constants.propertiesUtilsCore.jsp_getValue("bonusScale"));
	}
	
	/**
	 * 根据金额计算积分
	 * @author	"JakeLiu"
	 * Jan 10, 2013 5:34:25 PM
	 * @param total
	 * @return
	 */
	public static Bonus calculateBonusByOrderTotal(Double total) {
		
		double bonusScale = DEFAULT_BONUS_SCALE;
		
		if (isEnableConfigBonus()) {
			bonusScale = Double.parseDouble(Constants.propertiesUtilsCore.jsp_getValue("bonusScale"));
		}
		
		// 构建积分详情
		Bonus bonus = new Bonus();
		bonus.setScale(bonusScale);
		bonus.setValue(ArithUtils.mul(total, bonusScale));
		return bonus;
	}
	
	/**
	 *
	 * 积分明细、可扩展如积分类型、积分名称等
	 *
	 * @author "JakeLiu"
	 * @version Jan 10, 2013 5:33:12 PM
	 * @see Bonus
	 * @since 1.0.0
	 */
	static class Bonus {
		private Double scale;	// 倍数
		private Double value;	// 积分值
		
		public Double getScale() {
			return scale;
		}
		public void setScale(Double scale) {
			this.scale = scale;
		}
		public Double getValue() {
			return value;
		}
		public void setValue(Double value) {
			this.value = value;
		}
	}
}
最近下载更多
一个好人520  LV10 2021年9月29日
叽哩咕噜  LV2 2020年12月24日
wangdongtai  LV31 2020年11月6日
xcj456  LV8 2020年9月12日
moomin709  LV24 2020年7月6日
Gyq灬ming  LV11 2020年6月4日
xuyongff  LV24 2019年11月19日
托马斯奎  LV6 2019年8月5日
qq1453363097  LV13 2019年3月26日
高利杰  LV5 2018年12月19日
最近浏览更多
清清河边草 2023年10月11日
暂无贡献等级
漫步的海星  LV4 2023年3月14日
菜鸟666  LV2 2022年8月10日
17782780328  LV1 2022年7月21日
ewan007  LV29 2022年7月8日
a3870764722a  LV22 2022年6月7日
喃喵xxxx  LV6 2022年4月20日
crosa_Don  LV18 2022年4月1日
nbzhou2013  LV14 2022年3月18日
happyYang 2022年1月7日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友